Muitos programadores gostam da linguagem de programação php pela sua simplicidade e facilidade de produzir aplicações web. É bastante mais simples que o PERL ou mesmo que o C. Vamos, neste artigo, ver como podemos correr scripts php inscritos no crontab (tabela de tarefas agendadas) em sistemas Linux.
O sistema cron está normalmente disponível em todos os sistemas Unix e Linux. se não pode acessá-lo, entre em contato com o administrador do servidor.
Sintaxe do comando para uma tarefa agendada:
mm hh dd MM ss script
onde
mm = minuto(0-59)
hh = hora(0-23)
dd = dia(1-31)
MM = mes(1-12)
ss = dia_da_semana(0-6) (0->domingo; 6->sábado)
script = comando a ser executado.
Nota 1: Em qualquer posição pode-se usar o * (asterisco) para se referir a todos (ou seja todos os dias ou horas ou semanas, ou meses, etc).
Nota 2: Pode-se utilizar intervalos nesses campos. O caracter para intervalo é o - (hifen).
Nota 3: Pode-se utilizar lista de valores nesses campos. O caracter para a lista é a , (vírgula).
Exemplos:
Vamos então abordar as diversas formas que temos ao dispor para lançar um programa automaticamente a uma hora e dia específico:
Em primeiro lugar é necessário saber como foi instalado o php. Se foi instalado como “CGI” ou “an Apache”. Para verificar isso, basta criar um ficheiro com a extensão php (info.php) com a seguinte, e única, instrução: “”. Fazer o upload deste ficheiro (info.php) para o seu site e utilizar um browser para o correr. O resultado que vai aparecer é a configuração do php no servidor, pelo que é só necessário verificar o valor da chave “Server API”.
Se o php foi compilado como CGI:
* * * * * php /caminho para o ficheiro/ver.php >/dev/null
Ou para ser mais específico:
* * * * * php /home/xxxx/public_html/dir1/ver.php >/dev/null
A opção “>/dev/null
” serve para direcionar o output para um arquivo nulo.
No caso de querermos redirecionar o output para um ficheiro, fazemos:
* * * * * php /home/xxxx/public_html/dir1/ver.php > nome_ficeiro.php
Se o php foi compilado como módulo apache:
Neste caso é necessária uma abordagem um pouco diferente. Vamos utilizar o programa “Lynx” que é um navegador pequeno, geralmente disponível em Unix e Linux que nos vai permitir correr scripts php.
Assim temos o commando;
* * * * * lynx http://www.meusite.com/ver.php
Para ambas as instalações do php, podemos ainda utilizar a biblioteca cURL:
cURL é uma ferramenta de linha de comando para transferir dados com sintaxe URL. Além de suportar muitos protocolos, consegue também tratar certificados digitais, cookies, proxies e autenticação (incluindo NTLM, Basic, Digest, Negotiate, Kerberos...). Este pacote vem incorporado na maioria das distribuições Linux, e em caso contrário pode ser encontrado na internet de forma gratuíta.
Neste caso temos o comando:
curl -s -o /dev/null http://www.meusite.com/dir_1/ver.php.php
No caso de querermos correr um script que se encontre numa pasta protegida do servidor, temos de passar o usuário e a password (do diretório) como parâmetros.
#curl -u username:password http://meu_site.com/dir_protegido/ver.php
A gestão das tarefas tanto pode ser feita por ssh – linha de comandos- como através do painel de controlo do alojamento (melhor forma).